This invention relates to integrated circuits, and more particularly, to integrated circuits such as programmable logic devices having look-up tables with overdriven inputs.
Programmable logic devices are a type of integrated circuit that can be programmed by a user to implement a desired custom logic function. In a typical scenario, a logic designer uses computer-aided design tools to design a custom logic circuit. When the design process is complete, the tools generate configuration data. The configuration data is loaded into a programmable logic device to configure the device to perform the functions of the custom logic circuit.
Programmable logic devices contain programmable elements into which configuration data is loaded. The programmable elements may be based on random-access-memory (RAM) cells. Once loaded with configuration data, the RAM cells provide static control signals that are applied to the gates of metal-oxide-semiconductor transistors in blocks of programmable logic. The control signals turn the transistors on and off and thereby configure the programmable logic to implement desired custom logic circuits. RAM-based programmable elements that are loaded with configuration data are sometimes referred to as configuration RAM (CRAM).
Programmable logic devices may contain relatively large blocks of circuitry that are sometimes referred to a logic array blocks. Each logic array block may contain smaller logic regions that are sometimes referred to as logic elements (LEs). Logic elements may be based on combinatorial and sequential logic. As an example, logic elements may contain look-up tables. Each look-up table may have an associated set of CRAM cells. For example, a two-input look-up table may have four associated CRAM cells. Each of the four CRAM cells may be loaded with data. The states of the two inputs to the look-up table determine which of the four CRAM cells is connected to the output of the look-up table. In this way, the two input signals control which of the four data bits in the CRAM cells is “looked up” and routed to the look-up table output.
Routing resources are used to interconnect logic on a programmable logic device integrated circuit. For example, horizontal and vertical conductive lines are used to route signals between logic array blocks. Horizontal and vertical conductive lines may also be used to route signals between logic elements within a logic array block.
The routing fabric of a programmable logic device integrated circuit is typically configurable. For example, there may be programmable routing circuitry such as multiplexer circuitry at the intersection of vertical and horizontal routing lines. The routing circuitry can be controlled by the contents of associated CRAM cells.
As advances in semiconductor fabrication technology are made, logic circuit switching speeds tend to increase. This can allow integrated circuits such as programmable logic device integrated circuits to operate faster. However, increased clock frequencies and transistor switching speeds tend to place a burden on the routing resources and logic of a device. At high speeds, it can be difficult to drive signals through the routing resources of a device. It can also be difficult to operate logic circuits such as look-up tables as rapidly as possible.
It would therefore be desirable to be able to provide integrated circuits such as programmable logic device integrated circuits with improved routing and look-up table circuitry.